package com.dragon.modules.yuegou.entity.pay;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.pay.PaymentRecordPayType;
import com.dragon.modules.yuegou.enums.pay.PaymentRecordStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 支付记录表实体类<br>
 * 对应的表为：pay_payment_record<br>
 * 
 * @author pbuilder generated
 * @date 2019-03-18 16:40:41
 * @company sgy
 * @version 2.0
 */
@TableName("pay_payment_record")
@ApiModel(description = "支付记录表")
public class PaymentRecordEntity {

    /**  */
	protected String id;

    /** 订单号 */
	@ApiModelProperty("订单号")
	protected String orderNo;

    /** [枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS */
	@ApiModelProperty("[枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS")
	protected PaymentRecordPayType payType;

    /** 支付人 */
	@ApiModelProperty("支付人")
	protected String payerUser;

    /** 支付手机号-  后台交易明细需要显示 */
	@ApiModelProperty("支付手机号-  后台交易明细需要显示")
	protected String payMobile;

    /** [枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND */
	@ApiModelProperty("[枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND")
	protected PaymentRecordStatus status;

    /** 第三方支付号 */
	@ApiModelProperty("第三方支付号")
	protected String otherTrxNo;

    /** 版本号 */
	@ApiModelProperty("版本号")
	protected Integer version;

    /** 收款商户id */
	@ApiModelProperty("收款商户id")
	protected String merchantId;

    /** 商户名称 需要冗余进来,后台有交易明细需要显示 */
	@ApiModelProperty("商户名称 需要冗余进来,后台有交易明细需要显示")
	protected String merchantName;

    /** 商圈id */
	@ApiModelProperty("商圈id")
	protected String busdId;

    /** 支付金额 */
	@ApiModelProperty("支付金额")
	protected BigDecimal payFee;

    /** 设备号 */
	@ApiModelProperty("设备号")
	protected String deviceInfo;

    /**  微信分配的公众账号ID */
	@ApiModelProperty(" 微信分配的公众账号ID")
	protected String wxAppid;

    /**  微信支付分配的商户号 */
	@ApiModelProperty(" 微信支付分配的商户号")
	protected String mchId;

    /** 小程序appid */
	@ApiModelProperty("小程序appid")
	protected String subAppid;

    /** 子商户号 */
	@ApiModelProperty("子商户号")
	protected String subMchId;

    /** 支付宝appid */
	@ApiModelProperty("支付宝appid")
	protected String aliAppid;

    /**  */
	protected LocalDateTime createdTime;

    /**  */
	protected LocalDateTime modifiedTime;

    /** 支付时间 */
	@ApiModelProperty("支付时间")
	protected LocalDateTime payTime;

    /** 支付完成时间 */
	@ApiModelProperty("支付完成时间")
	protected LocalDateTime paySuccessTime;

	/**
	 * 构造一个空支付记录表实体对象
	 */
	public PaymentRecordEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个支付记录表实体对象
	 * 
	 * @param other 其它对象
	 */
	public PaymentRecordEntity(PaymentRecordEntity other){
		super();
     	this.id = other.id;
     	this.orderNo = other.orderNo;
     	this.payType = other.payType;
     	this.payerUser = other.payerUser;
     	this.payMobile = other.payMobile;
     	this.status = other.status;
     	this.otherTrxNo = other.otherTrxNo;
     	this.version = other.version;
     	this.merchantId = other.merchantId;
     	this.merchantName = other.merchantName;
     	this.busdId = other.busdId;
     	this.payFee = other.payFee;
     	this.deviceInfo = other.deviceInfo;
     	this.wxAppid = other.wxAppid;
     	this.mchId = other.mchId;
     	this.subAppid = other.subAppid;
     	this.subMchId = other.subMchId;
     	this.aliAppid = other.aliAppid;
     	this.createdTime = other.createdTime;
     	this.modifiedTime = other.modifiedTime;
     	this.payTime = other.payTime;
     	this.paySuccessTime = other.paySuccessTime;
	}


	/**
	 * 获取
	 * 
	 * @return id 
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置
	 * 
	 * @param id 
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取订单号
	 * 
	 * @return orderNo 订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
  	
	/**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 获取[枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS
	 * 
	 * @return payType [枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS
	 */
	public PaymentRecordPayType getPayType() {
		return payType;
	}
  	
	/**
	 * 设置[枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS
	 * 
	 * @param payType [枚举]支付类型：0-微信-WEICHANT、1-支付宝-ALIPAY、2-悦卡-YUECARD、3-悦币-YUECOIN、4-积分-POINTS
	 */
	public void setPayType(PaymentRecordPayType payType) {
		this.payType = payType;
	}

	/**
	 * 获取支付人
	 * 
	 * @return payerUser 支付人
	 */
	public String getPayerUser() {
		return payerUser;
	}
  	
	/**
	 * 设置支付人
	 * 
	 * @param payerUser 支付人
	 */
	public void setPayerUser(String payerUser) {
		this.payerUser = payerUser;
	}

	/**
	 * 获取支付手机号-  后台交易明细需要显示
	 * 
	 * @return payMobile 支付手机号-  后台交易明细需要显示
	 */
	public String getPayMobile() {
		return payMobile;
	}
  	
	/**
	 * 设置支付手机号-  后台交易明细需要显示
	 * 
	 * @param payMobile 支付手机号-  后台交易明细需要显示
	 */
	public void setPayMobile(String payMobile) {
		this.payMobile = payMobile;
	}

	/**
	 * 获取[枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND
	 * 
	 * @return status [枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND
	 */
	public PaymentRecordStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND
	 * 
	 * @param status [枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND
	 */
	public void setStatus(PaymentRecordStatus status) {
		this.status = status;
	}

	/**
	 * 获取第三方支付号
	 * 
	 * @return otherTrxNo 第三方支付号
	 */
	public String getOtherTrxNo() {
		return otherTrxNo;
	}
  	
	/**
	 * 设置第三方支付号
	 * 
	 * @param otherTrxNo 第三方支付号
	 */
	public void setOtherTrxNo(String otherTrxNo) {
		this.otherTrxNo = otherTrxNo;
	}

	/**
	 * 获取版本号
	 * 
	 * @return version 版本号
	 */
	public Integer getVersion() {
		return version;
	}
  	
	/**
	 * 设置版本号
	 * 
	 * @param version 版本号
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}

	/**
	 * 获取收款商户id
	 * 
	 * @return merchantId 收款商户id
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置收款商户id
	 * 
	 * @param merchantId 收款商户id
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取商户名称 需要冗余进来,后台有交易明细需要显示
	 * 
	 * @return merchantName 商户名称 需要冗余进来,后台有交易明细需要显示
	 */
	public String getMerchantName() {
		return merchantName;
	}
  	
	/**
	 * 设置商户名称 需要冗余进来,后台有交易明细需要显示
	 * 
	 * @param merchantName 商户名称 需要冗余进来,后台有交易明细需要显示
	 */
	public void setMerchantName(String merchantName) {
		this.merchantName = merchantName;
	}

	/**
	 * 获取商圈id
	 * 
	 * @return busdId 商圈id
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈id
	 * 
	 * @param busdId 商圈id
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取支付金额
	 * 
	 * @return payFee 支付金额
	 */
	public BigDecimal getPayFee() {
		return payFee;
	}
  	
	/**
	 * 设置支付金额
	 * 
	 * @param payFee 支付金额
	 */
	public void setPayFee(BigDecimal payFee) {
		this.payFee = payFee;
	}

	/**
	 * 获取设备号
	 * 
	 * @return deviceInfo 设备号
	 */
	public String getDeviceInfo() {
		return deviceInfo;
	}
  	
	/**
	 * 设置设备号
	 * 
	 * @param deviceInfo 设备号
	 */
	public void setDeviceInfo(String deviceInfo) {
		this.deviceInfo = deviceInfo;
	}

	/**
	 * 获取 微信分配的公众账号ID
	 * 
	 * @return wxAppid  微信分配的公众账号ID
	 */
	public String getWxAppid() {
		return wxAppid;
	}
  	
	/**
	 * 设置 微信分配的公众账号ID
	 * 
	 * @param wxAppid  微信分配的公众账号ID
	 */
	public void setWxAppid(String wxAppid) {
		this.wxAppid = wxAppid;
	}

	/**
	 * 获取 微信支付分配的商户号
	 * 
	 * @return mchId  微信支付分配的商户号
	 */
	public String getMchId() {
		return mchId;
	}
  	
	/**
	 * 设置 微信支付分配的商户号
	 * 
	 * @param mchId  微信支付分配的商户号
	 */
	public void setMchId(String mchId) {
		this.mchId = mchId;
	}

	/**
	 * 获取小程序appid
	 * 
	 * @return subAppid 小程序appid
	 */
	public String getSubAppid() {
		return subAppid;
	}
  	
	/**
	 * 设置小程序appid
	 * 
	 * @param subAppid 小程序appid
	 */
	public void setSubAppid(String subAppid) {
		this.subAppid = subAppid;
	}

	/**
	 * 获取子商户号
	 * 
	 * @return subMchId 子商户号
	 */
	public String getSubMchId() {
		return subMchId;
	}
  	
	/**
	 * 设置子商户号
	 * 
	 * @param subMchId 子商户号
	 */
	public void setSubMchId(String subMchId) {
		this.subMchId = subMchId;
	}

	/**
	 * 获取支付宝appid
	 * 
	 * @return aliAppid 支付宝appid
	 */
	public String getAliAppid() {
		return aliAppid;
	}
  	
	/**
	 * 设置支付宝appid
	 * 
	 * @param aliAppid 支付宝appid
	 */
	public void setAliAppid(String aliAppid) {
		this.aliAppid = aliAppid;
	}

	/**
	 * 获取
	 * 
	 * @return createdTime 
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdTime 
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedTime 
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedTime 
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取支付时间
	 * 
	 * @return payTime 支付时间
	 */
	public LocalDateTime getPayTime() {
		return payTime;
	}
  	
	/**
	 * 设置支付时间
	 * 
	 * @param payTime 支付时间
	 */
	public void setPayTime(LocalDateTime payTime) {
		this.payTime = payTime;
	}

	/**
	 * 获取支付完成时间
	 * 
	 * @return paySuccessTime 支付完成时间
	 */
	public LocalDateTime getPaySuccessTime() {
		return paySuccessTime;
	}
  	
	/**
	 * 设置支付完成时间
	 * 
	 * @param paySuccessTime 支付完成时间
	 */
	public void setPaySuccessTime(LocalDateTime paySuccessTime) {
		this.paySuccessTime = paySuccessTime;
	}

    public String toString() {
		return new StringBuilder().append("PaymentRecordEntity{").
			append("id=").append(id).
			append(",orderNo=").append(orderNo).
			append(",payType=").append(payType).
			append(",payerUser=").append(payerUser).
			append(",payMobile=").append(payMobile).
			append(",status=").append(status).
			append(",otherTrxNo=").append(otherTrxNo).
			append(",version=").append(version).
			append(",merchantId=").append(merchantId).
			append(",merchantName=").append(merchantName).
			append(",busdId=").append(busdId).
			append(",payFee=").append(payFee).
			append(",deviceInfo=").append(deviceInfo).
			append(",wxAppid=").append(wxAppid).
			append(",mchId=").append(mchId).
			append(",subAppid=").append(subAppid).
			append(",subMchId=").append(subMchId).
			append(",aliAppid=").append(aliAppid).
			append(",createdTime=").append(createdTime).
			append(",modifiedTime=").append(modifiedTime).
			append(",payTime=").append(payTime).
			append(",paySuccessTime=").append(paySuccessTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public PaymentRecordEntity copy() {
		return new PaymentRecordEntity(this);
	}

    /**  */
	public static final String COL_ID = "id";

    /** 订单号 */
	public static final String COL_ORDER_NO = "order_no";

    /** 【枚举】支付类型：0-微信-WEICHANT、 1-支付宝-ALIPAY、 2-悦卡-YUECARD、 3-悦币-YUECOIN、4-积分-POINTS */
	public static final String COL_PAY_TYPE = "pay_type";

    /** 支付人 */
	public static final String COL_PAYER_USER = "payer_user";

    /** 支付手机号-  后台交易明细需要显示 */
	public static final String COL_PAY_MOBILE = "pay_mobile";

    /** [枚举]支付状态：0-未支付-NOTPAY、1-已支付-PAID、2-部分退款-PART_REFUND、3-全部退款-ALL_REFUND */
	public static final String COL_STATUS = "status";

    /** 第三方支付号 */
	public static final String COL_OTHER_TRX_NO = "other_trx_no";

    /** 版本号 */
	public static final String COL_VERSION = "version";

    /** 收款商户id */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 商户名称 需要冗余进来,后台有交易明细需要显示 */
	public static final String COL_MERCHANT_NAME = "merchant_name";

    /** 商圈id */
	public static final String COL_BUSD_ID = "busd_id";

    /** 支付金额 */
	public static final String COL_PAY_FEE = "pay_fee";

    /** 设备号 */
	public static final String COL_DEVICE_INFO = "device_info";

    /**  微信分配的公众账号ID */
	public static final String COL_WX_APPID = "wx_appid";

    /**  微信支付分配的商户号 */
	public static final String COL_MCH_ID = "mch_id";

    /** 小程序appid */
	public static final String COL_SUB_APPID = "sub_appid";

    /** 子商户号 */
	public static final String COL_SUB_MCH_ID = "sub_mch_id";

    /** 支付宝appid */
	public static final String COL_ALI_APPID = "ali_appid";

    /**  */
	public static final String COL_CREATED_TIME = "created_time";

    /**  */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 支付时间 */
	public static final String COL_PAY_TIME = "pay_time";

    /** 支付完成时间 */
	public static final String COL_PAY_SUCCESS_TIME = "pay_success_time";
}
